package cn.dwy2002.binaryhandwritingserver.mapper;


import cn.dwy2002.binaryhandwritingserver.pojo.po.Project;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * @author 杜伟毅
 * @version 1.0
 * @since 2025/05/28
 */
@Mapper
public interface ProjectsMapper {
    /**
     * 根据ID查询项目
     *
     * @param id 项目ID
     * @return 返回对应ID的项目对象，若不存在则返回null
     * @author 杜伟毅
     * @since 2025/5/28 0028 21:30
     */
    Project selectById(Long id);

    /**
     * 查询所有未被删除的项目
     *
     * @return 返回所有未被逻辑删除的项目列表
     * @author 杜伟毅
     * @since 2025/5/28 0028 21:30
     */
    List<Project> selectAll();

    /**
     * 插入一个新项目
     *
     * @param project 要插入的项目对象，id需由调用方或数据库生成
     * @author 杜伟毅
     * @since 2025/5/28 0028 21:30
     */
    void insert(Project project);

    /**
     * 更新项目信息
     *
     * @param project 包含更新数据的项目对象，必须包含id字段用于定位记录
     * @author 杜伟毅
     * @since 2025/5/28 0028 21:30
     */
    void update(Project project);

    /**
     * 根据项目ID删除（逻辑删除）
     *
     * @param id 要删除的项目ID
     * @author 杜伟毅
     * @since 2025/5/28 0028 21:30
     */
    void deleteById(Long id);
}
